The majority of commercial programmable logic devices such as FPGAs use one-bit SRAM cells to store their configuration data. However SRAM cells consume significant static power, and lose their state when powered off. In addition, because SRAM cells need to be loaded at power-up, the configuration data is difficult to keep secure.
Using a non-volatile memory device to store the configuration data for programmable logic devices avoids these two problems. Many types of non-volatile memory devices are known. See for example Burr, et al., IBM J. Res. & Dev. Vol. 52 No. 4/5, 2008, “A Novel Resistance Memory with High Scalability and Nanosecond Switching”, IEDM 2007. Various non-volatile memory devices are known, and some of them are more suitable than others for use as configuration memory for programmable logic devices.
Antifuses are two-terminal, one-time-programmable memory devices. A sufficiently high current in either direction will irreversibly change the device from a high resistance state to a low resistance state. In the initial high resistance state, antifuses can tolerate normal logic voltages across them in either direction without risk of being programmed and without undue leakage currents. In the low-resistance state, antifuses can tolerate logic signal currents flowing through them in either direction. Because of these properties, antifuses may be used directly in the signal paths of routing networks as a programmable switch. Antifuse have been employed in FPGA integrated circuits, such as the Act1, Act2, MX, SX, and AX families manufactured and marketed by Microsemi SoC Corporation of Mountain View, Calif., and FPGA integrated circuits manufactured and marketed by QuickLogic of Sunnyvale, Calif.
In state-of-the-art, practical antifuse structures, the dielectric contains amorphous silicon and the state of the dielectric is altered by a phase change. There may also be a dielectric breakdown that occurs during programming. These are generally irreversible phenomena. Also, the critical dielectric is generally surrounded by inert barrier metal layers intended to keep contaminants out of the dielectric.
Floating gate transistors can be turned on and off by storing or removing charge from their floating gate. They are reprogrammable. Because flash devices have a high off resistance and a low on resistance, they can be used in the signal path as a programmable switch in programmable logic devices. One way to implement such a programmable switch is to employ a “switch-sense cell” as shown in FIGS. 1A through 1C. This cell is used in the ProASIC, APA, and PA3 families of FPGA integrated circuits manufactured and marketed by Microsemi SoC Corporation. A small sense transistor device and a larger switch transistor device share a single floating gate. The sense device is used to program and read a configuration bit. Both transistors are connected to a control gate associated with a word line. The source and drain of the sense device are connected to bit lines for programming and erasing the cell. The switch device is inserted in a signal path of the programmable routing.
A general scheme for layout of an FPGA using a switch-sense cell is shown in FIG. 2. Many of the switches drive logic inputs. Flash devices must be separated from CMOS logic by a minimum separation. An area-efficient layout will thus intersperse horizontal bands of logic with horizontal bands of switches, with many rows of switches bunched together in one band. Grouping the rows of switches into fewer bands will reduce area wasted by switch-logic spacing, but tends to lengthen the connecting wires.
Flash devices can also be used indirectly, controlling the gate of an NMOS pass device that serves as the switch. One way to do this is the push-pull arrangement, shown in FIG. 3. The switch is controlled by turning on one or the other of the flash devices. One flash device pushes the gate of the switch to ground, shutting the switch off. The other device pulls the gate of the switch to a voltage level sufficient to turn it on. The off resistance of the flash devices must be high so that static current is kept low. But the push-pull cell does not require as low an on resistance as does the switch-sense cell. U.S. Pat. No. 7,430,137 describes this and other related push-pull and cross-coupled cells whereby flash devices control NMOS pass gates or complementary NMOS/PMOS pass gates.
Although flash devices can be used either directly or indirectly to make programmable routing switches for FPGAs and other programmable logic devices, they do have a number of limitations. The need to separate flash devices from logic is noted above. In addition, about 12 extra masks are required to manufacture flash devices as compared to ordinary CMOS devices. They also require high voltages (˜18V in current technology) to program and erase. They occupy space on the silicon substrate. Flash devices are radiation tolerant to some extent, but are not completely immune to the effects of radiation. Integrating flash technology into a CMOS process may alter the performance of the ordinary CMOS transistors, and requires re-optimizing the integrated process.
SONOS devices are similar to flash devices. They require fewer masks to manufacture, and have lower but still significant programming voltages (currently around 8V). SONOS devices are not suitable for use in the signal path of a programmable logic device due to their high on-state resistance and the fact that their state can be altered (or “disturbed”) if the current passing through them gets too high. However SONOS devices can be used to form a push-pull cell, as described in, for example, U.S. Pat. No. 6,144,580.
U.S. Pat. No. 7,511,532 describes ways to use phase change memory (PCM) for configuration memory. PCM has several drawbacks. PCM devices can tolerate only small voltages (similar to or less than normal logic levels) across them when they are in an off state, and cannot tolerate these voltages for very long. The on-resistance of PCM devices is three orders of magnitude smaller than their off resistance. If read continuously in a simple push-pull cell, PCM devices will consume excessive static power.
Magnetic RAM (MRAM) devices are two-terminal memory devices that may be programmed or erased by applying a magnetic field generated by passing current through an adjacent addressing line. Examples of MRAM devices are those manufactured by EverSpin Technologies, Inc. of Chandler, Ariz. MRAM devices have a very low off-to-on resistance ratio of about 1.3.
Resistive RAM (RRAM) is a general name for two-terminal reprogrammable devices that can be set to either a low or high resistance state. These devices are based on reversible physical phenomena.
RRAM generally consists of a dielectric layer disposed between two electrodes. Some types of RRAM conduct by forming a distinct filament in a limited area of the dielectric. Other types of RRAM conduct by changing the properties of the dielectric throughout its area. Although many types of RRAM devices have been proposed over the years, as yet none of them has been proven to be reliable and manufacturable in practice.
Bipolar resistive RAM devices are two-terminal reprogrammable devices that exhibit hysteresis. They enter a low-resistance “on” state when voltage (and current) exceeding a certain threshold is applied in one direction and enter a high-resistance “off” state when voltage exceeding a certain threshold is applied in the opposite direction. FIG. 4 shows a generic representation of a bipolar RRAM device. The device would turn on when V2-V1 exceeds a positive threshold, such as 2 volts.
One important category of bipolar RRAM are the “solid electrolyte” devices, also known as “conductive-bridging RAM” (CBRAM) and “programmable metallization cells” (PMC). In these devices the memory dielectric is a chalcogenide or glass material. Rather than isolating the dielectric between inert electrodes, one of the electrodes serves as a source of mobile ions that are intended to migrate into the dielectric material. The ions are typically Ag or Cu. The ions can form a conductive filament from one electrode to another through the intervening dielectric material. Such devices have been described in the literature. For example, see Qimonda, “Conductive Bridging Memory Development from Single Cells to 2 Mbit Memory Arrays”, 8th Non-Volatile Memory Technology Symposium, Nov. 10-13, 2007; “A Novel Resistance Memory with High Scalability and Nanosecond Switching”, IEDM 2007; “Improvement of CBRAM Resistance Window by Scaling Down Electrode Size in Pure-GeTe Film”, IEEE Electron Device Letters, VOL. 30, No. 2, February 2009; M. Kund, et al “Conductive bridging RAM (CBRAM): an emerging non-volaitle memory technology scalable to sub 20 nm”, IEDM p. 754, 2005; T. Sakamoto et al, “A Ta2O5 solid-electrolyte switch with improved reliability, Symp. VLSI Tech., p. 38, 2007; U.S. Pat. Nos. 6,348,365, 6,709,887, 6,864,500, and 6,955,940.
Other known types of bipolar RRAM devices include the “memristor” developed at Hewlett Packard Labs, described in Nature 453, 80-83 (1 May 2008); the “conductive metal oxide” (CMOx) memory cell developed at Unity Semiconductor, described in “Scalable Non-Volatile Cross-Point Memory based on Dual-Layer Oxide Memory Elements”, Rene Meyer, 9th Annual Non-Volatile Memory Technology Symposium, Nov. 11-14, 2008, Pacific Grove, Calif.; ZnCdS reprogrammable “anti-fuses” for FPGAs, described in United States Published Patent Publication 2008/0211540.
Important parameters of these devices include off-state resistance and on-state resistance. To make a programmable logic device such as an FPGA with acceptable static power, the off resistance must be high (preferably greater than 100 Gohm in current technology). If the device is used directly as a switch, devices that remain off may have the ordinary logic voltage (currently 1.0 to 1.2V) across them and must be reliably able to withstand that voltage. If the device is used in a push-pull cell, the off device will also have a DC voltage of this magnitude or greater across it. For use directly as a switch, the on-state resistance needs to be less than a few Kohm. The requirements for a push-pull cell are not as stringent.
There are several other important parameters for such devices. They include the direction and magnitude of the program and erase voltages or currents, and the number of program/erase cycles that can be executed, called the endurance. The endurance should be at least 1000 cycles, preferably 100K cycles or more. The magnitude and direction of voltage and current the device can tolerate without risk of disturbing its state is also an important characteristic. For use directly as a switch, the device must be able to tolerate typical logic voltage and swing currents. The length of time the device will reliably hold its state, called the retention time is also important. Retention time should be at least 10 years, across a stated range of temperature or other operating conditions.
Other forms of resistive RAM are known which are unipolar, i.e. the program and erase voltages are applied in the same direction but are of different magnitude. Examples include devices described in: “Erase Mechanism for Copper Oxide Resistive Switching Memory Cells with Nickel Electrode”, Int'l Electron Devices Meeting, 2006, pp. 1-4; “Highly Scalable Non-volatile Resistive Memory using Simple Binary Oxide Driven by Asymmetric Uni-polar Voltage Pulses”, IEDM 2004.
The above-described prior-art RRAM structures suffer from yield issues when critical layers comprising the memory cell are disposed above a via. Some of these are due to the “seam” that often occurs in the top and center of the metal filling the via. FIG. 5 illustrates this problem in an RRAM device formed using a copper metal technology. Copper conductor 10 is surrounded by Cu barrier layer 12 and is formed in inter-metal dielectric layer 14. A SiN etch stop layer 16 is planar with the top surface of the copper metal layer 10. Layers 18 and 20 are formed above the surface of copper conductor 10 and SiN layer 16. Layers 18 and 20 are the memory cell dielectric and its electrode and can be formed in either order.
FIG. 5 shows a somewhat exaggerated view of how the seam 22, a gap that is sometimes left as metal fills the space of the via, causes bends in the layers 18 and 20 disposed above the metal. The bends make the layers deviate from an ideal flat shape. The site of the bend can become the thinnest point of the layer as indicated by arrows 24 and 26 in layers 18 and 20. Since the electric field across a layer is strongest at its thinnest point, the electrical properties of the memory cell become less predictable as a result of the thinned out layers caused by the unpredictable filling of the seam 22. An example of a prior art structure subject to this problem is shown in FIG. 3 of “A Novel Resistance Memory with High Scalability and Nanosecond Switching”, IEDM 2007, in which the seam is clearly visible.
Prior Art FPGA architectures include SRAM FPGA Architectures. The SRAM cell consists of two inverters in a ring and two addressing devices. One output of the SRAM cell, or both complementary outputs, may be used to drive the gates of pass devices serving as programmable routing switches. In some cases, the output of the SRAM cell may be buffered before driving the pass device gates. The supply voltage of the SRAMs may be above that used in the logic so that the NMOS pass device can pass a full rail signal and the level restoration pull-up device can be omitted.
Recent SRAM-based FPGA architectures have organized the programmable routing so that each routing track is driven by a single buffer and the buffer is driven by a multiplexer that selects one of the possible alternative input signals. See Lemieux, Int'l Conf. Field Programmable Tech., 2004, FIGS. 4 (right hand side) and 7.
An routing architecture suitable for use with antifuses is described in U.S. Pat. Nos. 4,758,745 and 4,873,459 and others assigned to Microsemi SoC Corporation. U.S. Pat. No. 5,537,056 shows two antifuses with a common terminal connected to an addressing device in FIG. 3.
Certain manufacturers of SRAM FPGAs have tried to obtain some of the benefits of non-volatile configuration memory by providing a bulk non-volatile memory alongside a conventional SRAM FGPA. For instance, the Xilinx Spartan 3N FPGA includes a non-volatile memory chip in the same package as an SRAM FPGA chip. The XP2 FPGAs from Lattice Semiconductor provide non-volatile flash memory blocks adjacent to an SRAM FPGA on the same chip. In some cases the bulk NVM may be made available for read or read/write operations by the user's logic as well.
Flash FPGA Architecture is typified by the architecture of the flash-based FPGAs from Microsemi SoC Corporation. In addition to using flash to configure the logic and routing of the FPGA fabric, certain flash FPGAs, such as Microsemi's Fusion products, also provide a large block of bulk NVM storage that may be accessed by the user's logic.
Unfortunately, flash technology requires a large amount of overhead circuitry, such as complex row and column drivers, programming control logic, and charge pumps to generate the high voltages required for programming and erase operations. For this reason, the NVM blocks are large in size and limited in number (typically only one). This limits the ways the NVM storage can be applied in user designs, e.g. by limiting the bandwidth or number of ports of the NVM storage.
U.S. Pat. No. 7,402,847 discloses examples of solid electrolyte RRAM devices and ways they can be used to make a crossbar interconnect suitable for FPGA routing. In particular, this reference discloses a back-to-back arrangement of two RRAM devices to form a programmable switch, as shown in FIGS. 7-10. The back-to-back arrangement helps reduce the chance of disturbing the state of off switches during normal operation since the voltage threshold necessary to program the switch to a conducting state is roughly doubled.
However the approach described has several drawbacks. First, an additional tristate driver (1106 or 1108) is needed for every routing track (204 or 206) carrying signals that are connected by the programmable switch (1102). This takes extra area. In typical FPGA architectures many if not most tracks are driven by the outputs of logic cells or routing buffers. If the tristate driver used for programming a track is turned on it might fight with the logic or routing buffer output that normally drives the same track. Of course, some means could be provided to override or disconnect the normal output, but this generally costs area and delay.
Further, no scheme for addressing the routing track drivers or common terminals of the programmable switches (see FIGS. 7 and 9) is disclosed. In addition, the routing architecture is a partial crossbar matrix with programmable switches at the locations where vertical and horizontal tracks cross. There is no provision for tracks that are not linear in either a horizontal or vertical direction. This limits the performance and routability of the architecture.
In a crossbar architecture, at least some of the programmable switches must drive fairly substantial capacitances. For example, at 65 nm technology, routing tracks may be on the order of 100 to 1000 um long, and have a capacitance of 0.2 fF per um. The on-resistance of a programmable switch can be on the order of 102 to 106 ohms. The RC time constant is thus 2 nsec to 0.2 msec. This is comparable to or much larger than a typical clock period at which it is desired to operate the circuit, say 2 nsec. As a result significant voltages may occur across a programmed switch, which may cause its resistance to increase (read disturb of on-switches).
As shown in FIG. 8 of U.S. Pat. No. 7,402,847, the common anode is on the upper layer of metal. This is inefficient for layout, since the common terminal of the two devices comprising the switch will need to be connected to an addressing transistor through a contact on the lowest layer of metal.
U.S. Pat. No. 7,511,532 describes a push-pull cell using solid-electrolyte RRAM devices in a back-to-back arrangement (see FIG. 23A). Because of the back-to-back arrangement and the particular polarity chosen, pullup devices that are turned off are subject to DC stress during operation that would tend to turn them on.
United States Patent Publication 2007/0165446 discloses a way to use phase change or solid electrolyte RRAM cells to make SEU hardened SRAM cells.